<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>单例模式</title>
</head>
<body>
  
</body>
<script>
  /*
    单例模式：
      单：单一、一个
      例：实例
      一个构造函数一生只能有一个实例 =>不管你 new 多少次，都是这一个实例
      应用：
        自定义弹出层
      核心代码：
        let instance = null;
        function singleTon(){
          if(!instance) instance = 实例对象;
          return instance
        }
      问题：
        1、书写代码的时候和构造函数已经没有关系
        2、new 关键字没有了
  */ 

  function Person(){
    this.name = 'Jack';
  }

  let instance = null;

  function singleTon(){
    if(!instance) instance = new Person();
    return instance
  }
  // 
  const p1 = singleTon();
  const p2 = singleTon();

  console.log(p1,p2);
  console.log(p1===p2);

</script>
</html>